package com.bootdo.common.service.impl;

import java.io.ByteArrayOutputStream;

import java.util.List;
import java.util.Map;
import java.util.zip.ZipOutputStream;

import org.apache.commons.io.IOUtils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bootdo.common.dao.GeneratorMapper;
import com.bootdo.common.service.GeneratorService;
import com.bootdo.common.utils.GenUtils;

@Service
public class GeneratorServiceImpl implements GeneratorService {
    @Autowired
    private GeneratorMapper generatorMapper;

    @Override
    public byte[] generatorCode(String[] tableNames) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ZipOutputStream       zip          = new ZipOutputStream(outputStream);

        for (String tableName : tableNames) {

            // 查询表信息
            Map<String, String> table = generatorMapper.get(tableName);

            // 查询列信息
            List<Map<String, String>> columns = generatorMapper.listColumns(tableName);

            // 生成代码
            GenUtils.generatorCode(table, columns, zip);
        }

        IOUtils.closeQuietly(zip);

        return outputStream.toByteArray();
    }

    @Override
    public List<Map<String, Object>> list() {
        List<Map<String, Object>> list = generatorMapper.list();

        return list;
    }
}


//~ Formatted by Jindent --- http://www.jindent.com
